1. Field of the Invention
The present invention is directed to processing of filesystem resource acquisition requests or access requests and, more particularly, to avoiding monopolization of access to a filesystem by one type of filesystem access request.
2. Description of the Related Art
A network filesystem, such as NFS from Silicon Graphics, Inc. (SGI) of Mountain View, Calif., provides access to files in centralized storage by client computer systems in a client-server operating environment. Such network filesystems process resource acquisition requests for read and write access to data and to obtain metadata or information about the data, such as the size of the data, access permissions on the data, etc.
Conventionally, resource acquisition requests are stored in one or more queues upon receipt while they await execution by a process that controls access to the filesystem. When more than one queue is used, the resource acquisition requests may be sorted by read, write and metadata requests and, and by different subtypes within these types, e.g., within read requests by whether a read-ahead operation should be performed, or whether a write contains data or only a synchronization request.
Regardless of whether all resource acquisition requests are stored in a single queue, or sorted into multiple queues, a single type of resource acquisition request may monopolize access to a filesystem, or a particular type of resource acquisition request which is desired to be given higher priority may be slowed by execution of less important resource acquisition requests. For example, an application may generate a sequence of write operations that monopolize a filesystem if requests in one queue at a time are executed until the queue is exhausted or there is only one queue, or a read of a block of data may be delayed by less important metadata and write access requests in a system which services the queues in a round-robin fashion. No known system is flexible enough to allow users, i.e., system administrators, to tune the processing of resource acquisition requests for a particular operating environment.